package org.arquimedes.servicios;

import java.io.*;
import java.net.*;
import org.arquiemedes.utilitarios.Constantes;

public class ServicioSolicitarTrama {

    private static String HOST;
    private static int PUERTO;
    private static ServicioSolicitarTrama solitario = null;

    /**
     * Se define como el solitario
     * @return
     */
    public static ServicioSolicitarTrama getServicio() {
        if (solitario == null) {
            solitario = new ServicioSolicitarTrama();
        }
        return solitario;
    }

    public ServicioSolicitarTrama() {
        HOST = ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.IPALARMA);
        PUERTO = Integer.valueOf(ServicioPropiedades.getServicio().obtenerPropiedad(Constantes.PUERTO));
    }

    public Object solicitarTrama(String mensaje) {

        Object dato = null;
        try {
            Socket skCliente = new Socket(HOST, PUERTO);
            OutputStream aux = skCliente.getOutputStream();
            ObjectOutputStream flujo = new ObjectOutputStream(aux);
            flujo.writeObject(mensaje);
            ObjectInputStream bufferObjetos = new ObjectInputStream(skCliente.getInputStream());
            dato = bufferObjetos.readObject();

            skCliente.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return dato;
    }

    
}
